The invention relates generally to communication systems and, more particularly, to an improved method and system for configuring Totem communication systems.
A number of systems have been developed for providing network communications among groups. One such system is a Totem ring system, in which a plurality of host processors are electrically connected to a bus, each of which host processors includes a Central Processing Unit (CPU) adapted for executing processes such as application programs, including call processing, database operations, or any process requiring fault tolerance. A Totem ring provides for the delivery of multicast messages and invokes operations in the same total order throughout a distributed system, thereby resulting in consistency of replicated data and simplified programming of applications. Totem systems are well known to those skilled in the art and are, for example, described in greater detail in an article entitled xe2x80x9cTotem: A Fault Tolerant Multicast Group Communication Systemxe2x80x9d by L. E. Moser et al., published in the April 1996, Vol. 39, No. 4 Edition of Communications of the ACM.
Totem systems manage a number of different aspects of a communications system. For example, message delivery is controlled using a token similar to that used in a token ring to identify which host processor may transmit onto the ring. Periodically, such as every few milliseconds, the token is sent around the ring to each host processor in sequence. As the token is received by each host processor, the host processor determines whether it has a message or data to transmit over the ring. If a host processor does not have a message or data to transmit over the ring, then it regenerates the token and sends it to the next host processor. Each such query, response, and token regeneration, however, requires the CPU of a host processor to stop executing a process, such as an application program, while it responds to, and regenerates, the token. Typically, a processor has nothing to communicate, thereby rendering the token unnecessary the vast majority of the time. Furthermore, when such a cycle occurs every few milliseconds, the processing overhead for a CPU becomes, not only unnecessary, but also significant.
Totem systems also provide for virtual synchrony upon which a process, such as an application program, is loaded onto two host processors, one of which is designated as an active processor and the other of which is designated as a standby processor. If the active processor fails, then execution of the process is transferred to the standby processor. Determination of a failed processor, though, requires that, periodically, certain membership queries be made, via token retransmits, of the processors that are xe2x80x9cmembersxe2x80x9d of the Totem system. Such queries, as well as system configuration settings and other administrative functions performed by the Totem system, impose processing overhead on the CPUs of each of the host processors, in addition to the overhead imposed by the regeneration and forwarding of the aforementioned token, and further decrease the operating efficiency of the processors. Not only is the operating efficiency of the processors decreased, but the detection time of a processor failure is also degraded because the processors cannot quickly retransmit tokens since they are engaged predominantly in processing applications.
Therefore, what is needed is a method and system for relieving the processing overhead on the CPUs of the host processors so that they may operate more efficiently.
According to the present invention, a Totem system having a plurality of host processors is improved by providing each host processor with a co-processor and buffer memory which operate as an interface between a CPU of each host processor and the network of the Totem system. The co-processors relieve the processing overhead on the CPUs, thereby enabling each CPU and host processor to operate more efficiently.